﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
using ProdeBackEnd.Model;

namespace ProdeBackEnd
{
    // NOTA: puede usar el comando "Rename" del menú "Refactorizar" para cambiar el nombre de interfaz "IService1" en el código y en el archivo de configuración a la vez.
    [ServiceContract]
    public interface IService1
    {
        [OperationContract]
        User login(User user);

        [OperationContract]
        void logout();

        [OperationContract]
        List<Tournament> getTournaments();

        [OperationContract]
        Tournament saveTournament(Tournament tournament);

        [OperationContract]
        List<Team> getTeams(String filter);

        [OperationContract]
        Team saveTeam(Team team);

        [OperationContract]
        List<Match> getMatch(String filter);

        [OperationContract]
        Match saveMatch(Match match);

        [OperationContract]
        List<UserResult> getUserResult(String filter);

        [OperationContract]
        List<User> getUserList(String filter);

        [OperationContract]
        List<User> getUserByTournament(long idTournament, String filter);

        [OperationContract]
        List<Tournament> getTournamentByUser(long idUser, String filter);

        [OperationContract]
        List<UserPoint> getUserpointsByTournamet(User User);

        [OperationContract]
        void signonUserInTeam(User User, long idTournament);

        [OperationContract]
        List<Match> getMatchMissing(User user);

        [OperationContract]
        void saveUserresult(UserResult userResult);

        [OperationContract]
        Match getMatchById(long idMatch);

    }
}
